﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Globalization;
using System.IO;
using ESRI.ArcGIS.Carto;
namespace DIWAGIS.Modules
{
    class Helper
    {

        //////////////////////////

        public string checkFloat(string strCheck, string validate, string message)
        {
            Regex regex = new Regex(@"^[0-9]*([0-9]\.[0-9]*)?$");
            if (regex.IsMatch(strCheck))
            {
                return "";
            }
            else
            {
                if (message == null || message == "")
                {
                    return validate + " :  Vui lòng nhập số  \n";
                }
                else
                {
                    return message + " \n";
                }
            }
        }

        /// ////////////////
        /// 
        public string checkInt(string strCheck, string validate, string message)
        {

            Regex regex = new Regex("^[\\d]+$");
            if (regex.IsMatch(strCheck))
            {
                return "";
            }
            else
            {
                if (message == null || message == "")
                {
                    return validate + " :  Vui lòng nhập số \n";
                }
                else
                {
                    return message + " \n";
                }
            }
        }

        /// ///////



        public string checkString(string strCheck, string validate, string message)
        {

            Regex regex = new Regex("^[a-zA-Z ' ' ]+$");
            if (regex.IsMatch(strCheck))
            {
                return "";
            }
            else
            {
                if (message == null || message == "")
                {
                    return validate + " :  Vui lòng nhập chữ \n";
                }
                else
                {
                    return message + " \n";
                }
            }
        }

        /// ///////



        public string checkStringNotSpace(string strCheck, string validate, string message)
        {

            Regex regex = new Regex("^[a-zA-Z]+$");
            if (regex.IsMatch(strCheck))
            {
                return "";
            }
            else
            {
                if (message == null || message == "")
                {
                    return validate + " :  Vui lòng nhập chữ và không có khoảng trắng \n";
                }
                else
                {
                    return message + " \n";
                }
            }
        }



        /// ////////


        public string checkDateTimeFormat(string strcheck, string validate, string message)
        {
            try
            {
                DateTime.ParseExact(strcheck, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None);
                return "";
            }
            catch (Exception ex)
            {
                if (message == null || message == "")
                {
                    return validate + " :  Vui lòng nhập đúng định dạng ngày tháng là dd/mm/yyyy ( VD : 14/02/2012 ) \n";
                }
                else
                {
                    return message + " \n";
                }
            }
        }


        /// ///////      

        public string checkStringEqual(string strCheck1, string strCheck2, string validate, string message)
        {
            if (strCheck1 == strCheck2)
            {
                return "";
            }
            else
            {
                if (message == null || message == "")
                {
                    return validate + " : Phải giống nhau \n";
                }
                else
                {
                    return message + " \n";
                }
            }
        }

        /// ////////////

        public string checkEmailFormat(string strCheck, string validate, string message)
        {
            string match = @"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*";

            Regex reg = new Regex(match);
            if (reg.IsMatch(strCheck))
            {
                return "";
            }
            else
            {
                if (message == null || message == "")
                {
                    return validate + " : Vui lòng nhập đúng định dạng email \n ";
                }
                else
                {
                    return message + " \n";
                }
            }

        }



        /// //////////////////////      

        public string checkStringLength(string strCheck, string validate, int maxlength, int minlength, string message)
        {
            if (strCheck.Length > maxlength || strCheck.Length < minlength)
            {
                if (message == null || message == "")
                {
                    return "Độ dài của " + validate + " không được lớn hơn " + maxlength + " hoặc nhỏ hơn " + minlength + " \n";
                }
                else
                {
                    return message + " \n";
                }

            }
            else
            {
                return "";
            }
        }



        /////////////////////////

        public string  getConfigInTextFile()
        {
            StreamReader stream;
            string line, file, strResult = "";
            file = AppDomain.CurrentDomain.BaseDirectory + @"system\cfConnectSub.txt";
            if (System.IO.File.Exists(file))
            {
                stream = new StreamReader(file);

                while ((line = stream.ReadLine()) != null)
                {
                    strResult = line;
                }

                stream.Close();

                return strResult;
            }
            else
            {
                return "";
            }

        }

        ////////////////////////

        public void write_FileConfig(string text)
        {
            string file;
            file = AppDomain.CurrentDomain.BaseDirectory + @"system\cfConnectSub.txt";
            try
            {
                if (!File.Exists(file))
                {
                    // Create the file.
                    FileStream fs = File.Create(file, 1024);
                }

                StreamWriter writer;
                writer = new StreamWriter(file);

                writer.WriteLine("{0}", text);

                writer.Close();

            }
            catch (Exception) { }
        }
        
        /////////////////////////////

    }
}
